﻿Public Module Modulo
  Sub Main()
    Dim i As Integer    ' variabile di ciclo
    Dim risp As String = ""    ' messaggio

    Dim arr(3) As Auto
    arr(0) = New Auto(1600, "AZ417DD", "FIAT")
    arr(1) = New Auto(1000, "DE934AS", "OPEL")
    arr(2) = New Auto(1800, "AB123FF", "BMW")
    arr(3) = New Auto(1200, "MI43488A", "AUDI")

    arr(0).tipoOrdinamento = 1
    arr(1).tipoOrdinamento = 1
    arr(2).tipoOrdinamento = 1
    arr(3).tipoOrdinamento = 1
    Array.Sort(arr)       ' ordinamento array

    For i = 0 To 3
      ' preparazione messaggio 
      ' ordinamento per cilindrata
      risp &= arr(i).cilindrata & " / " &
         arr(i).targa & " / " & arr(i).marca &
         Environment.NewLine
    Next
    Console.WriteLine(risp)

    arr(0).tipoOrdinamento = 2
    arr(1).tipoOrdinamento = 2
    arr(2).tipoOrdinamento = 2
    arr(3).tipoOrdinamento = 2
    Array.Sort(arr)       ' ordinamento array

    risp = ""
    For i = 0 To 3
      ' preparazione messaggio  
      ' ordinamento per targa
      risp &= arr(i).cilindrata & " / " &
         arr(i).targa & " / " & arr(i).marca &
         Environment.NewLine
    Next
    Console.WriteLine(risp)

    arr(0).tipoOrdinamento = 3
    arr(1).tipoOrdinamento = 3
    arr(2).tipoOrdinamento = 3
    arr(3).tipoOrdinamento = 3
    Array.Sort(arr)       ' ordinamento array

    risp = ""
    For i = 0 To 3
      ' preparazione messaggio
      ' ordinamento per marca
      risp &= arr(i).cilindrata & " / " &
         arr(i).targa & " / " & arr(i).marca &
         Environment.NewLine
    Next
    Console.WriteLine(risp)
    Console.ReadLine()
  End Sub
End Module
